package com.briup.corejava.day04;

import java.util.Scanner;

/**
 * while循环
 * 计算两个正整数的最大公约数和最小公倍数
 * 公式：最小公倍数 = 两数乘积 / 最大公约数
 */
public class Test7 {
    public static void main(String[] args) {
        // 1、获取两个数的输入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入两个正整数，使用回车进行区分：");
        int a = sc.nextInt();
        int b = sc.nextInt();
        // 2、给定两个数的较大和较小
        int max = Math.max(a, b);
        int min = a < b ? a : b;
        // 3、先判断两个数是否能整除 （大除以小）
        if(max % min == 0){
            System.out.println("最大公约数为："+min);
            System.out.println("最小公倍数为："+(a*b/min));
            return; // 结束当前方法
        }
        // 4、如果不能整除使用辗转相除法：不能整除时最大值和最小值的替换
        int yu = max % min;
        while (yu != 0){
            max = min;
            min = yu;
            yu = max % min;
        }
        System.out.println("最大公约数为："+min);
        System.out.println("最小公倍数为："+(a*b/min));
    }
}
